package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;

public class ArrayListDemo {
    public static void main(String[] args) {
        // 1. 创建ArrayList对象
        // 底层初始化了一个空数组
        ArrayList<String> list = new ArrayList<>();

        // 2. 往ArrayList集合中添加数据
        list.add("zhangsan");
        list.add(0, "lisi");

        // 获取数据
        String s = list.get(1);
        System.out.println(s);

        // 修改数据
        list.set(0, "wangwu");
        list.remove(1);

        // 重新添加数据
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        list.add("youqi");
        list.add("yuba");


        // 打印整个列表
        System.out.println(list);
        System.out.println("----------------------集合的遍历方法一-------------------------");
        // 1. 使用for循环遍历
        for (int i = 0; i < list.size(); i++) {
            String s1 = list.get(i);
            System.out.println(s1);
        }

        System.out.println("----------------------集合的遍历方法二-------------------------");
        // 2. 使用增强for循环遍历
        for (String obj : list) {
            System.out.println(obj);
        }

        System.out.println("----------------------集合的遍历方法三-------------------------");
        // 3. 使用迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }

        System.out.println("----------------------集合的遍历方法四-------------------------");
        // 4. 使用Lambda表达式遍历
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String name) {
                System.out.println(name);
            }
        });

        list.forEach(( name)-> System.out.println(name));

        list.forEach(System.out::println);
    }
}




